package com.etime.shuhuiyuan.services.coursetype.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.etime.shuhuiyuan.dao.CourseTypeDao;
import com.etime.shuhuiyuan.pojo.CourseType;
import com.etime.shuhuiyuan.services.coursetype.interfaces.CourseTypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * service层实现类
 */
@Service
public class CourseTypeServiceImpl implements CourseTypeService {
    /**
     * 使用spring的ioc容器自动注入对象实例
     */
    @Autowired
    private CourseTypeDao courseTypeDao;
    /**
     * 添加课程类型
     *
     * @param courseType
     * @return
     */
    @Override
    public int insertCourseType(CourseType courseType) {
        return courseTypeDao.insert(courseType);
    }

    /**
     * 修改课程类型(根据coursetypeid进行修改。)
     *
     * @param courseType 参数中必须要有coursetypeid
     * @return
     */
    @Override
    public int updateCourseType(CourseType courseType) {
        return courseTypeDao.updateById(courseType);
    }

    /**
     * 查询课程类型列表
     *
     * @param courseType
     * @return
     */
    @Override
    public List<CourseType> selectCourseTypeList(CourseType courseType) {
        //查询条件
        QueryWrapper<CourseType> wrapper = new QueryWrapper<>();
        if(courseType!=null && courseType.getCoursetypename()!=null && !courseType.getCoursetypename().equalsIgnoreCase("")) {
            wrapper.eq("coursetypename", courseType.getCoursetypename());
        }
        if(courseType!=null && courseType.getCoursetypestate()!=null && courseType.getCoursetypestate()!=-1){
            wrapper.eq("coursetypestate",courseType.getCoursetypestate());
        }
        return courseTypeDao.selectList(wrapper);
    }

    /**
     * 课程类型分页查询
     *
     * @param courseType
     * @param pagenum
     * @param pagesize
     * @return
     */
    @Override
    public Page<CourseType> selectCourseTypeByPage(CourseType courseType, long pagenum, long pagesize) {
        //分页参数
        Page<CourseType> page = new Page<>(pagenum,pagesize);
        //查询条件
        QueryWrapper<CourseType> wrapper = new QueryWrapper<>();
        if(courseType!=null && courseType.getCoursetypename()!=null && !courseType.getCoursetypename().equalsIgnoreCase("")) {
            wrapper.like("coursetypename", courseType.getCoursetypename());
        }
        if(courseType!=null && courseType.getCoursetypestate()!=null && courseType.getCoursetypestate()!=-1){
            wrapper.eq("coursetypestate",courseType.getCoursetypestate());
        }

        return courseTypeDao.selectPage(page,wrapper);
    }

    /**
     * coursetypeid查询一条课程类型记录
     *
     * @param coursetypeid
     * @return
     */
    @Override
    public CourseType selectCourseTypeById(Integer coursetypeid) {
        return courseTypeDao.selectById(coursetypeid);
    }

}
